home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (PO) / Nibble Volume 12, No. 11 (1991-11)(MindCraft Publishing)(Side A).zip / Nibble Volume 12, No. 11 (1991-11)(MindCraft Publishing)(Side A).po / NOTEPLAY.S < prev    next >
Text File  |  1996-12-24  |  3KB  |  65 lines

  1.                          ;*************************
  2.                          ;*       NOTEPLAY        *
  3.                          ;*      routine for      *
  4.                          ;* INTERVAL EAR TRAINING *
  5.                          ;*  by Douglas Florzak   *
  6.                          ;*                       *
  7.                          ;* Copyright (C) 1991 by *
  8.                          ;* MindCraft Publ. Corp. *
  9.                          ;*   Lincoln, MA 01773   *
  10.                          ;*                       *
  11.                          ;*    EDASM assembler    *
  12.                          ;*************************
  13.                          ;
  14.                          ;             *** WHAT IT DOES ***
  15.                          ;
  16.                          ; Allows a BASIC program to sound a note
  17.                          ; with separate pitch & duration variables.
  18.                          ;
  19.                          ;             *** HOW TO USE IT ***
  20.                          ;
  21.                          ;   Poke Pitch into:    $331 (817)
  22.                          ;   Poke Duration into: $332 (818)
  23.                          ;   Call:               $300 (768)
  24.                          ;
  25.                          ;   A pitch of $00 is silent.
  26.                          ;
  27.           ORG $300       ; LOAD INTO $300
  28. SPKR      EQU $C030      ; SPEAKER CLICK OUTPUT
  29. NOTEPLY   PHA            ; SAVE REGISTERS
  30.           TYA
  31.           PHA
  32.           TXA
  33.           PHA
  34.           LDA DURATN     ; MOVE DURATION VALUE TO
  35.           STA DURCNT     ;   COUNTABLE LOCATION
  36.           LDY #$00       ; INIT FAST DURATION COUNT
  37.           TYA            ; INIT DURATION MULTIPLIER
  38. SOUND     LDX PITCH      ; GET PITCH VALUE
  39.           CPX #$00       ; IS IT SILENT?
  40.           BEQ NOSOUND    ; YES, KEEP IT SILENT
  41.           BIT SPKR       ; TWEEK SPEAKER
  42. NOSOUND   DEY            ; DEC FAST DURATION COUNT
  43.           BNE CONT       ; IF NO, CONTINUE
  44.           CLC
  45.           ADC DURMUL     ; DURATION MULTIPLIER
  46.           BNE CONT       ;  IGNORE ALL BUT ZERO
  47.           DEC DURCNT     ; DECREMENT SLOW DURATION
  48.           BEQ EXIT       ; IF FINISHED
  49. CONT      DEX            ; DECREMENT PITCH VALUE
  50.           BNE NOSOUND    ; PITCH NOT DONE
  51.           BEQ SOUND      ; PITCH DONE, ALWAYS TAKEN
  52. EXIT      PLA            ; RESTORE REGISTERS
  53.           TAX
  54.           PLA
  55.           TAY
  56.           PLA
  57.           RTS            ; AND EXIT
  58.                          ;
  59.                          ;*** NOTEPLAY STORAGE ***
  60.                          ;
  61. PITCH     DFB $195       ; PITCH GOES HERE
  62. DURATN    DFB $24        ; DURATION GOES HERE
  63. DURCNT    DFB $72        ;  GETS COUNTED HERE
  64. DURMUL    DFB $20        ; DURATION MULTIPLIER
  65.